/*
 * @Author: luoyuxiang 398165@qq.com
 * @Date: 2025-03-15 20:01:58
 * @LastEditors: luoyuxiang 398165@qq.com
 * @LastEditTime: 2025-03-24 21:59:02
 * @FilePath: \formula-syn-vue\src\api\project\topic-tcm.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import request from "@/utils/request";

const TOPICTCM_BASE_URL = "/api/v1/topicTcms";

const TopicTcmAPI = {
  /** 获取选题处方分页数据 */
  getPage(queryParams?: TopicTcmPageQuery) {
    return request<any, PageResult<TopicTcmPageVO[]>>({
      url: `${TOPICTCM_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取选题处方表单数据
   *
   * @param id TopicTcmID
   * @returns TopicTcm表单数据
   */
  getFormData(id: number) {
    return request<any, TopicTcmForm>({
      url: `${TOPICTCM_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /** 添加选题处方*/
  add(data: TopicTcmForm) {
    return request({
      url: `${TOPICTCM_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新选题处方
   *
   * @param id TopicTcmID
   * @param data TopicTcm表单数据
   */
  update(id: number, data: TopicTcmForm) {
    return request({
      url: `${TOPICTCM_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除选题处方，多个以英文逗号(,)分割
   *
   * @param ids 选题处方ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${TOPICTCM_BASE_URL}/${ids}`,
      method: "delete",
    });
  },

  /**
   * 获取选题处方
   *
   * @param id TopicTcmID
   * @returns TopicTcm表单数据
   */
  getTopicTcms(id: number) {
    return request<any, TopicTcmPageVO[]>({
      url: `${TOPICTCM_BASE_URL}/${id}/tcms`,
      method: "get",
    });
  },

  getApriori(data: string[]): Promise<AprioriVO> {
    return request({
      url: `${TOPICTCM_BASE_URL}/apriori`,
      method: "post",
      data: data,
    });
  },
};

export default TopicTcmAPI;

/** 选题处方分页查询参数 */
export interface TopicTcmPageQuery extends PageQuery {
  /** 选题Id */
  topicId?: number;
  /** 文章Id */
  articleId?: number;
}

/** 选题处方表单对象 */
export interface TopicTcmForm {
  /** 选题Id */
  topicId?: string;

  /** 处方Id */
  tcmId?: string;

  /** 文章编号Id */
  articleId?: string;
}

/** 选题处方分页对象 */
export interface TopicTcmPageVO {
  /** 编号 */
  id?: number;
  /** 选题处方Id */
  topicTcmId?: number;
  /** 文章编号Id */
  articleId?: number;
  /** 名称 */
  name?: string;
  /** 组成 */
  composition?: string;
  /** 加减 */
  addSubtract?: string;
  /** 西医病名 */
  disease?: string;
  /** 中医病名 */
  diseaseCn?: string;
  /** 症状 */
  symptom?: string;
  /** 对证 */
  syndrome?: string;
  /** 药效 */
  physiologica?: string;
  /** 病因病机 */
  etiolog?: string;
  /** 原始文本 */
  originalText?: string;
  /** 已分解组成 */
  isSplited?: number;

  /** 选题处方编号 */
  tcmId?: number;
  /** 选题Id */
  topicId?: number;
  /** 用户名 */
  username?: string;
}

export interface AprioriVO {
  frequentItemsets: Record<string, number>;
  associationRules: Record<string, number>;
}
